import java.util.Date;

/*
    要操作一个类的字节码，需要首先获取到这个类的字节码，怎么获取java.lang.Class实例呢？
        三种方式：
            Class c = Class.forName("完整类名带包名");
            Class c = 对象.getClass();
            Class c = 任何类型.class;
 */
public class ReflectTest01 {
    public static void main(String[] args) {
        /*
        Class.forName()
            1、静态方法
            2、方法的参数是一个字符串
            3、字符串需要的是一个完整的类名
            4、完整的类名必须带有包名
         */
        try {
            Class c1 = Class.forName("java.lang.String"); //c1代表String.class文件，或者说c1代表String类型
            Class c2 = Class.forName("java.util.Date");
            Class c3 = Class.forName("java.lang.Integer");
            Class c4 = Class.forName("java.lang.System");
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }

        //java中任何对象都有一个方法getClass()
        String s = "abc";
        Class x = s.getClass(); //x代表String.class字节码文件，x代表String类型

        //java语言中任何一类型，包括基本数据类型，他都有.class属性
        Class z = String.class;
        Class k = Date.class;
        Class f = int.class;
        Class e = double.class;

    }
}
